﻿using System;
using System.Collections.Generic;
using System.Windows.Forms;
using System.Linq;

namespace SoftPhone
{
    public partial class Account_info : DevExpress.XtraEditors.XtraForm
    {
        public Account_info()
        {
            InitializeComponent();
            InitialLoad();
        }

        private void InitialLoad()
        {
            var config = PolicyConfigClient.ReadConfig("Account");
            if (config != null)
            {
                txtUserName.Text = config.Where(a => a.Key == "UserName").SingleOrDefault().Value;
                txtID.Text = config.Where(a => a.Key == "ID").SingleOrDefault().Value;
                txtPassword.Text = config.Where(a => a.Key == "Password").SingleOrDefault().Value;
                txtDomain.Text = config.Where(a => a.Key == "Domain").SingleOrDefault().Value;
                txtPort.Text = config.Where(a => a.Key == "Port").SingleOrDefault().Value;
            }
        }

        private void btnOK_Click(object sender, EventArgs e)
        {
            try
            {
                if (PolicyConfigClient.CheckIP(txtDomain.Text, int.Parse(txtPort.Text)))
                { 
                    MyAccount acc = new MyAccount()
                    {
                        UserName = txtUserName.Text,
                        Id = txtID.Text,
                        HostName = txtDomain.Text + ":" + txtPort.Text,
                        DomainName = "*",
                        Password = txtPassword.Text,
                    };

                    SIPManager manager = new SIPManager();
                    if (manager.Register(acc))
                    {
                        MessageBox.Show("Đăng nhập SIP thành công", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        this.Close();
                    }
                    else
                    {
                        MessageBox.Show("Đăng nhập thất bại", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }

                    Dictionary<string, string>  config = new Dictionary<string, string>();
                    string message = "";
                    config.Add("UserName", txtUserName.Text);
                    config.Add("ID", txtID.Text);
                    config.Add("Domain", txtDomain.Text);
                    config.Add("Password", txtPassword.Text);
                    config.Add("Port", txtPort.Text);
                    PolicyConfigClient.SaveConfig("Account", config, ref message);
                    if (message != "")
                    {
                        MessageBox.Show(message, "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }
            }
            catch
            {
                MessageBox.Show("Thông tin nhập vào không hợp lệ" + "\n" + "Xin hãy nhập lại", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void btnCancel_Click(object sender, EventArgs e)
        {
            this.Close();
        }
        
    }
}